Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags

ABSTRACT

Computer-implemented systems and methods are disclosed to interface with one or more storage devices storing a plurality of documents, wherein each of the plurality of documents is associated with one or more tags of one or more predefined hierarchies of tags, wherein the one or more hierarchies of tags include multiple dimensions. In accordance with some embodiments, a method is provided to identify one or more documents from the data storage devices. The method comprises acquiring, via an interface, a selection of one or more tags of the one or more predefined hierarchies of tags. The method further comprises identifying one or more documents from the data storage devices in response to the selection, the identified one or more documents having tags that have a relationship with the selected tags, and providing data corresponding to the identified documents for displaying in the interface.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/631633, filed Feb. 25, 2015, and titled “SYSTEMS AND METHODS FORORGANIZING AND IDENTIFYING DOCUMENTS VIA HIERARCHIES AND DIMENSIONS OFTAGS.” The entire disclosure of the above item is hereby made part ofthis specification as if set forth fully herein and incorporated byreference for all purposes, for all that it contains.

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 37 CFR 1.57.

BACKGROUND

Data is commonly stored in computer-based systems in fixed, rigidlystructured data stores. For example, one common type of data store is a“flat” file such as a spreadsheet, plain-text document, or XML document.Another common type of data store is a relational database comprisingone or more tables. Other examples of data stores that comprisestructured data include, without limitation, files systems, objectcollections, record collections, arrays, hierarchical trees, linkedlists, stacks, and combinations thereof.

Often, the underlying structure of these types of data stores is poorlysuited for data analysis. One approach for facilitating a more efficientanalysis of data in such data stores is to reorganize that dataaccording to an object model that defines object structures andrelationships between the object structures. Tagging is a method used tocreate objects, properties, or links between objects and/or propertiesin structured or unstructured data. It can add structure to unstructureddata or add further structure to structured data. An exemplary systemand method for tagging is described in detail in U.S. application Ser.No. 14/025,653, filed on Sep. 12, 2013, and titled “Systems and Methodsfor Providing a Tagging Interface for External Content,” which isincorporated herein by reference in its entirety.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the accompanying drawings showing exampleembodiments of the present application, and in which:

FIG. 1 is a block diagram of an exemplary computer system with whichembodiments described herein can be implemented, consistent withembodiments of the present disclosure.

FIG. 2 is a block diagram depicting an exemplary internal databasesystem, consistent with embodiments of the present disclosure.

FIG. 3 is a chart illustrating an exemplary hierarchical structure oftags, consistent with embodiments of the present disclosure.

FIGS. 4A-4B are charts illustrating an exemplary object model reflectingrelationships between tags, consistent with embodiments of the presentdisclosure.

FIG. 5 is a chart illustrating an exemplary object model reflectingrelationships between combinations of tags of the exemplary hierarchicalstructure of tags depicted in FIG. 3, consistent with embodiments of thepresent disclosure.

FIGS. 6A-6B are screenshots depicting an exemplary interface forselecting one or more tags to identify a document, consistent withembodiments of the present disclosure.

FIGS. 7A-7E are screenshots depicting exemplary interfaces foridentifying and displaying documents based on tags, consistent withembodiments of the present disclosure.

FIGS. 8A-8B are screenshots depicting an exemplary interface foridentifying and displaying documents based on tags from previouslyidentified documents, consistent with embodiments of the presentdisclosure.

FIG. 9 is a flowchart representing an exemplary method performed by anelectronic device for identifying documents based on tags, consistentwith embodiments of the present disclosure.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Reference will now be made in detail to the embodiments, the examples ofwhich are illustrated in the accompanying drawings. Whenever possible,the same reference numbers will be used throughout the drawings to referto the same or like parts.

Embodiments of the present disclosure provide a means to organize andaccess data structured with tag objects (e.g. by associating a portionor part or entirety of the data with tags) by providing a pre-definedhierarchy of tags. As an exemplary illustration, the hierarchy caninclude one or more dimensions, each dimension comprising a set of tagscorresponding to that dimension. The pre-defined hierarchy of tagsfacilitates tag-based identification and retrieval of the dataassociated with one or more selected tags that are part of thehierarchy, which can allow a user of the system to navigate through avery large data sets to identify appropriate data or documentsassociated with or related to the one or more selected tags.

Embodiments of the present disclosure further provide an interfaceallowing the user to navigate through very large data sets to identifyand display appropriate data or documents associated with or related tothe one or more selected tags. Via the interface, a user can input aselection of tags and retrieve a document associated with the tagsselection, as well as other documents that are related to the tagsselection. The interface also updates the tags selection based on adocument retrieved by the user, allowing the user to identify otherrelated documents. The interface further facilitates a user's navigationthrough a very large data sets to identify appropriate data or documentsassociated with or related to the one or more selected tags.

The tag objects can include one or more attributes, and a relationshipcan be defined between the attributes of each tag object (orcombinations thereof). As an exemplary illustration, the tag object caninclude attributes including a tag label, a tag type, and one or moreproperties. Moreover, based on these attributes, one or morerelationships between tags can be defined.

After the one or more tags are selected in the interface, dataassociated with those tags can be acquired. Moreover, one or more othertags related to the selected tags can be identified, which can allowdata associated with the one or more other tags to also be acquired.This further facilitates tag-based identification and retrieval of thedata associated with tags that are part of the hierarchy by, forexample, allowing the user to navigate within a huge universe of datastructured with tags, guided by the pre-defined hierarchy of tags, aswell as the pre-defined relationship between the tags in the hierarchy.

According to some embodiments, the operations, techniques, and/orcomponents described herein can be implemented by an electronic device,which can include one or more special-purpose computing devices. Thespecial-purpose computing devices can be hard-wired to perform theoperations, techniques, and/or components described herein, or caninclude digital electronic devices such as one or moreapplication-specific integrated circuits (ASICs) or field programmablegate arrays (FPGAs) that are persistently programmed to perform theoperations, techniques and/or components described herein, or caninclude one or more hardware processors programmed to perform suchfeatures of the present disclosure pursuant to program instructions infirmware, memory, other storage, or a combination. Such special-purposecomputing devices can also combine custom hard-wired logic, ASICs, orFPGAs with custom programming to accomplish the technique and otherfeatures of the present disclosure. The special-purpose computingdevices can be desktop computer systems, portable computer systems,handheld devices, networking devices, or any other device thatincorporates hard-wired and/or program logic to implement the techniquesand other features of the present disclosure.

The one or more special-purpose computing devices can be generallycontrolled and coordinated by operating system software, such as iOS,Android, Blackberry, Chrome OS, Windows XP, Windows Vista, Windows 7,Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris,VxWorks, or other compatible operating systems. In other embodiments,the computing device can be controlled by a proprietary operatingsystem. Operating systems control and schedule computer processes forexecution, perform memory management, provide file system, networking,I/O services, and provide a user interface functionality, such as agraphical user interface (“GUI”), among other things.

FIG. 1 is a block diagram of an exemplary computer system 100 with whichembodiments described herein can be implemented, consistent withembodiments of the present disclosure. Computer system 100 includes abus 102 or other communication mechanism for communicating information,and one or more hardware processors 104 (denoted as processor 104 forpurposes of simplicity) coupled with bus 102 for processing information.Hardware processor 104 can be, for example, one or microprocessors.

Computer system 100 also includes a main memory 106, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 102for storing information and instructions to be executed by processor104. Main memory 106 also can be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 104. Such instructions, after being stored innon-transitory storage media accessible to processor 104, rendercomputer system 100 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 100 further includes a read only memory (ROM) 108 orother static storage device coupled to bus 102 for storing staticinformation and instructions for processor 104. A storage device 110,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 102 for storing information andinstructions.

Computer system 100 can be coupled via bus 102 to a display 112, such asa cathode ray tube (CRT), an liquid crystal display (LCD), or a touchscreen, for displaying information to a computer user. An input device114, including alphanumeric and other keys, is coupled to bus 102 forcommunicating information and command selections to processor 104.Another type of user input device is cursor control 116, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 104 and for controllingcursor movement on display 112. The input device typically has twodegrees of freedom in two axes, a first axis (for example, x) and asecond axis (for example, y), that allows the device to specifypositions in a plane. In some embodiments, the same directioninformation and command selections as cursor control may be implementedvia receiving touches on a touch screen without a cursor.

Computing system 100 can include a user interface module to implement agraphical user interface (GUI) that can be stored in a mass storagedevice as executable software codes that are executed by the one or morecomputing devices. This and other modules can include, by way ofexample, components, such as software components, object-orientedsoftware components, class components and task components, processes,functions, fields, procedures, subroutines, segments of program code,drivers, firmware, microcode, circuitry, data, databases, datastructures, tables, arrays, and variables.

In general, the word “module,” as used herein, refers to logic embodiedin hardware or firmware, or to a collection of software instructions,possibly having entry and exit points, written in a programminglanguage, such as, for example, Java, Lua, C or C++. A software modulecan be compiled and linked into an executable program, installed in adynamic link library, or written in an interpreted programming languagesuch as, for example, BASIC, Perl, or Python. It will be appreciatedthat software modules can be callable from other modules or fromthemselves, and/or can be invoked in response to detected events orinterrupts. Software modules configured for execution on computingdevices can be provided on a computer readable medium, such as a compactdisc, digital video disc, flash drive, magnetic disc, or any othertangible medium, or as a digital download (and can be originally storedin a compressed or installable format that requires installation,decompression, or decryption prior to execution). Such software code canbe stored, partially or fully, on a memory device of the executingcomputing device, for execution by the computing device. Softwareinstructions can be embedded in firmware, such as an EPROM. It will befurther appreciated that hardware modules can be comprised of connectedlogic units, such as gates and flip-flops, and/or can be comprised ofprogrammable units, such as programmable gate arrays or processors. Themodules or computing device functionality described herein arepreferably implemented as software modules, but can be represented inhardware or firmware. Generally, the modules described herein refer tological modules that can be combined with other modules or divided intosub-modules despite their physical organization or storage.

Computer system 100 can implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 100 to be a special-purpose machine. Accordingto some embodiments, the operations, functionalities, and techniques andother features described herein are performed by computer system 100 inresponse to processor 104 executing one or more sequences of one or moreinstructions contained in main memory 106. Such instructions can be readinto main memory 106 from another storage medium, such as storage device110. Execution of the sequences of instructions contained in main memory106 causes processor 104 to perform the process steps described herein.In alternative embodiments, hard-wired circuitry can be used in place ofor in combination with software instructions.

The term “non-transitory media” as used herein refers to anynon-transitory media storing data and/or instructions that cause amachine to operate in a specific fashion. Such non-transitory media cancomprise non-volatile media and/or volatile media. Non-volatile mediacan include, for example, optical or magnetic disks, such as storagedevice 110. Volatile media can include dynamic memory, such as mainmemory 106. Common forms of non-transitory media include, for example, afloppy disk, a flexible disk, hard disk, solid state drive, magnetictape, or any other magnetic data storage medium, a CD-ROM, any otheroptical data storage medium, any physical medium with patterns of holes,a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge, and networked versions of the same.

Non-transitory media is distinct from, but can be used in conjunctionwith, transmission media. Transmission media can participate intransferring information between storage media. For example,transmission media can include coaxial cables, copper wire and fiberoptics, including the wires that comprise bus 102. Transmission mediacan also take the form of acoustic or light waves, such as thosegenerated during radio-wave and infra-red data communications.

Various forms of media can be involved in carrying one or more sequencesof one or more instructions to processor 104 for execution. For example,the instructions can initially be carried on a magnetic disk or solidstate drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 100 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 102. Bus 102 carries the data tomain memory 106, from which processor 104 retrieves and executes theinstructions. The instructions received by main memory 106 canoptionally be stored on storage device 110 either before or afterexecution by processor 104.

Computer system 100 can also include a communication interface 118coupled to bus 102. Communication interface 118 can provide a two-waydata communication coupling to a network link 120 that can be connectedto a local network 122. For example, communication interface 118 can bean integrated services digital network (ISDN) card, cable modem,satellite modem, or a modem to provide a data communication connectionto a corresponding type of telephone line. As another example,communication interface 118 can be a local area network (LAN) card toprovide a data communication connection to a compatible LAN. Wirelesslinks can also be implemented. In any such implementation, communicationinterface 118 can send and receive electrical, electromagnetic oroptical signals that carry digital data streams representing varioustypes of information.

Network link 120 can typically provide data communication through one ormore networks to other data devices. For example, network link 120 canprovide a connection through local network 122 to a host computer 124 orto data equipment operated by an Internet Service Provider (ISP) 126.ISP 126 in turn can provide data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 128. Local network 122 and Internet 128 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 120 and through communication interface 118, which carrythe digital data to and from computer system 100, can be example formsof transmission media.

Computer system 100 can send messages and receive data, includingprogram code, through the network(s), network link 120 and communicationinterface 118. In the Internet example, a server 130 can transmit arequested code for an application program through Internet 128, ISP 126,local network 122 and communication interface 118.

The received code can be executed by processor 104 as it is received,and/or stored in storage device 110, or other non-volatile storage forlater execution. In some embodiments, server 130 can provide informationfor being displayed on a display.

FIG. 2 is a block diagram depicting an exemplary internal databasesystem 200, consistent with embodiments of the present disclosure. Amongother things, system 200 facilitates transformation of one or more datasources, such as data sources 230, into an object model 260, whosesemantics are defined by an ontology 250. The transformation can beperformed for a variety of reasons. For example, a databaseadministrator can wish to import data from data sources 230 into adatabase 270 for persistently storing object model 260. As anotherexample, a data presentation component (not depicted) can transforminput data from data sources 230 “on the fly” into object model 260.Object model 260 can then be utilized, in conjunction with ontology 250,for analysis through graphs and/or other data visualization techniques.

System 200 comprises a definition component 210 and a transformationcomponent 220, both implemented by one or more processors on one or morecomputing devices executing hardware and/or software-based logic forproviding various functionality described herein. As will be appreciatedfrom the present disclosure, system 200 can comprise fewer or additionalcomponents that provide various functionalities described herein. Suchcomponents are, for clarity, omitted from FIG. 1. Moreover, thecomponent(s) of system 200 responsible for providing variousfunctionalities can further vary from embodiment to embodiment.

Definition component 210 generates and/or modifies ontology 250 and aschema map 240. Exemplary embodiments for defining an ontology (such asontology 250) is described in U.S. Pat. No. 7,962,495 (the '495 Patent),issued Jun. 14, 2011, the entire contents of which are expresslyincorporated herein by reference for all purposes. Among other things,the '495 patent describes embodiments that define a dynamic ontology foruse in creating data in a database. For creating a database ontology,one or more object types are created where each object type can includeone or more properties. The attributes of object types or property typesof the ontology can be edited or modified at any time.

In some embodiments, each property type is declared to be representativeof one or more object types. A property type is representative of anobject type when the property type is intuitively associated with theobject type. For example, a property type of “geographical location” maybe representative of an object type “locale” but not representative ofan object type “style.”

Schema map 240 can define how various elements of schemas 235 for datasources 230 map to various elements of ontology 250. Definitioncomponent 210 receives, calculates, extracts, or otherwise identifiesschemas 235 for data sources 230. Schemas 235 define the structure ofdata sources 230—for example, the names and other characteristics oftables, files, columns, fields, properties, and so forth. Definitioncomponent 210 furthermore optionally identifies sample data 236 fromdata sources 230. Definition component 210 can further identify objecttype, relationship, and property definitions from ontology 250, if anyalready exist. Definition component 210 can further identifypre-existing mappings from schema map 240, if such mappings exist.

Transformation component 220 can be invoked after schema map 140 andontology 250 have been defined or redefined. Transformation component220 identifies schema map 240 and ontology 250. Transformation component120 further reads data sources 230 and identifies schemas 235 for datasources 230. For each element of ontology 250 described in schema map240, transformation component 220 iterates through some or all of thedata items of data sources 230, generating elements of object model 260in the manner specified by schema map 240. In some embodiments,transformation component 220 can store a representation of eachgenerated element of object model 260 in a database 270. In someembodiments, transformation component 220 is further configured tosynchronize changes in object model 160 back to data sources 230.

Data sources 230 can be one or more sources of data, including, withoutlimitation, spreadsheet files, databases, email folders, documentcollections, media collections, contact directories, and so forth. Datasources 230 can include structured data (e.g., a database, a .csv file,or any tab delimited or fixed-width file), semi-structured data (e.g.,an email, an email server, or forms such as a suspicious activity reportor currency transaction report), or unstructured data (e.g., encodedfiles such as PDF, sound, and image files). Data sources 230 can includedata structures stored persistently in non-volatile memory. Data sources230 can also or instead include temporary data structures generated fromunderlying data sources via data extraction components, such as a resultset returned from a database server executing an database query.

Schema map 240, ontology 250, and schemas 235 can be stored in anysuitable data structures, such as XML files, database tables, and soforth. In some embodiments, ontology 250 is maintained persistently.Schema map 240 can or cannot be maintained persistently, depending onwhether the transformation process is perpetual or a one-time event.Schemas 235 need not be maintained in persistent memory, but can becached for optimization.

Object model 260 comprises collections of elements such as typedobjects, properties, and relationships. The collections can bestructured in any suitable manner. In some embodiments, a database 270stores the elements of object model 260, or representations thereof. Insome embodiments, the elements of object model 260 are stored withindatabase 270 in a different underlying format, such as in a series ofobject, property, and relationship tables in a relational database

Based on the identified information, definition component 210 cangenerate a graphical interface 215. Graphical interface 215 can bepresented to users of a computing device via any suitable outputmechanism (e.g., a display screen, an image projection, etc.), and canfurther accept input from users of the computing device via any suitableinput mechanism (e.g., a keyboard, a mouse, a touch screen interface).Graphical interface 215 may feature a visual workspace that visuallydepicts representations of the elements of ontology 250 for whichmappings are defined in schema map 240. Graphical interface 215 canfurther utilize the sample data 236 to provide the user with a previewof object model 260 as the user defines schema map 240. In response tothe input via the various controls of graphical interface 215,definition component 210 can generate and/or modify ontology 250 andschema map 240, and/or identify object models and sample data schemas235 and data sources 230.

In some embodiments, graphical interface 215 also provides a user withthe ability to add structure to an unstructured document stored in datasources 230 by tagging one or more portions (e.g., text) within thedocument. Defining tags and applying these tags to a portion of thedocument can create tag objects, properties, or links creating arelationship between one or more tag objects and/or properties. In someembodiments, graphical interface 215 allows a user to input one or morepre-defined tags to retrieve a tagged document, and/or a set of relateddocuments that are associated with other pre-defined tags which aredifferent from, but have a relationship to, the one or more inputpre-defined tags. In some embodiments, graphical interface 215 alsodisplays to the user the tags associated with those related documents,and the user can use those tags to identify another tagged documents,and/or another set of related documents, thereby allowing the user to“move” between the documents stored in data sources 230 guided by therelationships between the pre-defined tags.

FIG. 3 is a chart 300 illustrating an exemplary hierarchical structureof tags 310 (“tag hierarchy”), consistent with embodiments of thepresent disclosure. In some embodiments, the exemplary tag hierarchy inFIG. 3 can provide part of the structure of object model 260 storedwithin database 270 in FIG. 2. Tag hierarchy 310 can include dimensions320. For example, as shown in tag hierarchy 310, these dimensionsinclude a locale dimension 340, a subject matter dimension 350, a mediumdimension 360, and a style dimension 370. Each dimension includes a setof tags, which includes one or more tags linked to that dimension. Insome embodiments, tags are created as objects with attributes, and theselinks can be established based on the attributes of the tags. The tagsconstitute a group of tags 330.

As shown in FIG. 3, locale dimension 340 can include a set of tagshaving attributes related to regions and countries. As an exemplaryillustration, under the locale dimension 340, there is a United Statestag 341 and a Germany tag 342. There can also be a further subset oftags (e.g., California tag 343 and Texas tag 344) under United Statestag 341, where California tag 343 and Texas tag 344 have attributesindicating that they are associated with United States (e.g. being astate of the United States), which can allow California tag 343 andTexas tag 344 to be linked to United States tag 341. Similarly,California tag 343 can also have a further subset of tags (e.g. PaloAlto tag 345).

The relationship between a tag and any corresponding subset of tags canbe based on attributes in that tag and in the corresponding subset oftags. For example, Palo Alto tag 345 has attributes indicating that itis associated with California (e.g., a city of the state of California),which can allow Palo Alto tag 345 to be linked to California tag 343.

Under tag hierarchy 310, subject matter dimension 350 can include tagswith attributes related to a classification based on content. As anexemplary illustration, under subject matter dimension 350, there arescenery tag 351 and living tag 352, where scenery tag 351 has attributesindicating that the content is related to scenery (e.g. depicting ordescribing a scene), while living tag 352 has attributes indicating thatthe content is related to a living thing (e.g. depicting or describing aliving organism, such as human). Scenery tag 351 can have a furthersubset of tags (e.g. architecture tag 353), where architecture tag 353has attributes indicating that the content is related to architecture(e.g. depicting or describing buildings), which can allow architecturetag 353 to be linked with scenery tag 351. Similarly, living tag 352 canhave a further subset of tags (e.g. people tag 354), where people tag354 has attributes indicating that the content is related to a human(e.g. a portrait), which can allow tag 354 to be linked with living tag352.

Under tag hierarchy 310, medium dimension 360 can include tags withattributes related to a classification based on a medium on which thecontent is rendered. As an exemplary illustration, there are paper tag361 and film tag 362 under medium dimension 360. Furthermore, styledimension 370 can also include tags with attributes related to aclassification based on a style of rendering the content. As anexemplary illustration, there are classical tag 371 and modern tag 372under the style dimension 370. A person with ordinary skill in the artwill understand that the dimensions and tags depicted in FIG. 3 are forillustration purposes only, and there is no limitation on the number ofdimensions, how dimensions are defined, and how the tags are organizedunder each dimension.

FIG. 4A shows, in a chart 400, an exemplary object model reflectingrelationships between tags, consistent with embodiments of the presentdisclosure. In chart 400, each circle represents a cell, and each linerepresents a relationship between cells. In some embodiments, a cellwithin the object model can be associated with one or more pre-definedtags, and the relationship between the cells can be defined based on arelationship between the attributes of the tags associated with thecells. Each of the cells can also be associated with the taggeddocuments stored in data sources 230 of FIG. 2 via, for example, commontags or related tags associated with both the cells and the taggeddocuments. A document can also be associated with one or more of thecells, if the document is tagged with multiple sets of tags that areassociated with multiple cells.

Chart 400 also includes a sub-chart 410 which includes an exemplarysubset of cells and relationships of the object model. FIG. 4B shows aclose-up view of sub-chart 410. Sub-chart 410 illustrates cells 420,430, 440, 450, 460, and 470, as well as relationships 425, 435, 445,455, 465, 475, and 485. As an exemplary illustration, cell 420 can beassociated with United States tag 341, cell 430 can be associated withCalifornia tag 343, cell 440 can be associated with Palo Alto tag 345,cell 450 can be associated with Germany tag 342, cell 460 can beassociated with a Japan tag (not shown in tag hierarchy 310 of FIG. 3),and cell 470 can be associated with a Tokyo tag (not shown in taghierarchy 310 of FIG. 3). Among these cells, cell 420 (with the UnitedStates tag), cell 450 (with the Germany tag), and cell 460 (with theJapan tag) can have relationship 455, 465, and 475 between each other byvirtue of, for example, that the United States tag, the Germany tag, andthe Japan tag all have attributes related to an indication of a countrywith a developed economy.

Cell 430 (with the California tag) has relationship 425 with cell 420(with the United States tag) by virtue of, for example, that theCalifornia tag has attributes that link it to United States tag 341(e.g. California being a state of United States), the link to which canallow the California tag to be related to the United States tag.Furthermore, cell 440 (with the Palo Alto tag) can also haverelationship 435 with cell 430 by virtue of, for example, that the PaloAlto tag includes attributes that link it to California tag 343 (e.g.Palo Alto being a city of California), the link to which can allow thePalo Alto tag to be related to the California tag. Palo Alto tag 345 canalso include attributes that link it to United States tag 341 (e.g. PaloAlto being a city of United States), the link to which can allow cell440 to also have the relationship 445 with cell 420.

On the other hand, cell 460 (with the Japan tag) can have a relationship485 with cell 470 (with the Tokyo tag) by virtue of, for example, thatthe Tokyo tag has attributes that link it to the Japan tag (e.g. Tokyobeing a city of Japan), the link to which can allow the Tokyo tag to berelated to the Japan tag. But in this exemplary illustration, the Tokyotag may have no relationship with the Germany tag, the United Statestag, the California tag, or the Palo Alto tag, therefore cell 470 mayhave no relationship with cells 420, 430, 440, or 450 within sub-chart410.

FIG. 5 is a chart 500 illustrating an exemplary object model reflectingrelationships between combinations of tags of the exemplary hierarchicalstructure of tags depicted in FIG. 3, consistent with embodiments of thepresent disclosure. In some embodiments, the object model shown in chart500 includes cells 510, 530, 550, 570, and 590, each of which can be,respectively, associated with tag combinations 512, 532, 552, 572, and592. Each tag combination includes one or more tags for each of itsdimensions, which include, for example, locale dimension 340, subjectmatter dimension 350, medium dimension 360, and style dimension 370 asdepicted in FIG. 3. The tag combination can include tags of taghierarchy 310 as depicted in FIG. 3, and can include one or more tagsfor each dimension as depicted in FIG. 3. Each of these cells can alsobe associated with the tagged documents stored in data sources 230 ofFIG. 2 via the tags. The object model shown in chart 500 also includesrelationships 520, 540, 545, 565, 568, and 585 between the cells. As tobe illustrated below, these relationships can be determined based on therelationship between tags within one or more dimensions.

As an exemplary illustration, cell 510 is associated with tagcombination 512, which includes United States tag 341 under the localedimension and scenery tag 351 under the subject matter dimension. Cell530 is associated with tag combination 532, which includes Californiatag 343 under the locale dimension, scenery tag 351 under the subjectmatter dimension, paper tag 361 under the medium dimension, andclassical tag 371 under the style dimension. Cell 570 is associated withtag combination 572. Tag combination 572 is otherwise identical to tagcombination 532 except that tag combination 572 has Palo Alto tag 345instead of California tag 343 under the locale dimension. Moreover, cell550 is associated with tag combination 552, which includes Texas tag 344under the locale dimension, scenery tag 351 under the subject matterdimension, paper tag 361 under the medium dimension, and modern tag 372under the style dimension. Lastly, cell 590 is associated with tagcombination 592. Tag combination 592 is otherwise identical to tagcombination 552, except that tag combination 592 has Germany tag 342instead of Texas tag 344 under the locale dimension.

Relationship 520 between cell 510 and cell 530 can be determined basedon, for example, a relationship between the United States tag(associated with cell 510) and the California tag (associated with cell530) under the locale dimension. A relationship 540 between cell 510 andcell 550 can also be determined based on, for example, a relationshipbetween the Texas tag (associated with cell 550) and the United Statestag under the locale dimension. Furthermore, relationship 545 betweencell 530 and cell 550 can also be determined based on, for example, boththe relationship between the California tag and the Texas tag under thelocale dimension, as well as the relationship between the paper tag(associated with cell 530) and the film tag (associated with cell 550)under the medium dimension. In this particular example, because bothcells 510 and 530 have scenery tag 351 for the subject matter dimension,the subject matter dimension can be ignored in determining relationship520. Also, because cell 510 does not have tags for the medium and styledimensions, these dimensions can also be ignored in determiningrelationships 520 and 540.

As discussed before, the relationship between tags can be determinedbased, for example, the attributes of the tags. In addition,relationship between tags can also be established in other ways. Forexample, tags can become related to each other when both tags areassociated with a document, with documents that have related metadata,or with a cell. Furthermore, relationship between tags can also becreated manually according to any pre-defined condition.

In some embodiments, each tag combination in FIG. 5 can be representedas a multi-dimensional vector, with each dimension of tag hierarchy 310represented by a vector dimension, and a combination of one or more tagsunder a dimension of tag hierarchy 310 contributes to a magnitude of thevector along that vector dimension, based on the attributes of the tags.The relationship between tags can then be calculated as, for example, animaginary distance between the multi-dimensional vectors representingthe tag combinations. In some embodiments, such imaginary distance canbe calculated by first projecting the multi-dimensional vectorsrepresenting the tag combinations onto a pre-defined plane, and thencalculating a distance between the projections on the pre-defined plane.In some embodiments, when the calculated distance exceeds a certainthreshold, it can be determined that no relationship exists between thetag combinations. In some embodiments, the relationship between cells(or between tag combinations associated with the cells) can also beadded manually with or without considering the calculated distance.

Referring back to FIG. 5, cell 570 is associated with tag combination572, which includes Palo Alto tag 345 under the locale dimension, andthe locale dimension is the only dimension with different tags whencompared with tag combination 532 associated with cell 530. Relationship565 can then be determined based on, for example, the relationshipbetween California tag 343 and Palo Alto tag 345 under the localedimension alone. Similarly, cell 590 is associated with tag combination592, which includes Germany tag 342 under the locale dimension, and thelocale dimension is the only dimension with different tags when comparedwith the tag combination 552 associated with cell 550. Relationship 585can then be determined based on, for example, the relationship betweenGermany tag 342 and Texas tag 344 under the locale dimension alone.

Relationship 568 between cells 570 and 590 can also be determined basedon, for example, both the relationship between the Palo Alto tag(associated with cell 570) and the Germany tag (associated with cell590) under the locale dimension, as well as the relationship between theclassical tag (associated with cell 570) and the modern tag (associatedwith cell 590) under the medium dimension. In some embodiments, asdiscussed above, each of the cells in object model 500 can be associatedwith documents stored in data sources 230 that are tagged with the sametags associated with each cell, and relationship 568 can be establishedby, for example, that a document stored in data sources 230 describes aGermany film derived from a Palo Alto novel, and therefore is taggedwith tags including, for example, Germany tag 342, Palo Alto tag 345,paper tag 361, and film tag 362, etc., notwithstanding any calculateddistance between these tags.

FIG. 6A and FIG. 6B are screenshots depicting an exemplary interface 600for selecting one or more tags to identify a document, consistent withembodiments of the present disclosure. In some embodiments, theexemplary interface can be provided by an application. The applicationcan be a web browser such as, for example, Google™ Chrome™, Mozilla™Firefox™, Microsoft™ Internet Explorer™, etc.

In some embodiments, a bookmarklet is installed in the web browser. Abookmarklet can be a bookmark that is stored in a web browser and cancontain JavaScript™ commands to extend the web browser's functionality.That is, a bookmarklet can be a simple “one-click” tool that can addfunctionality to the web browser. For example, a bookmarklet can modifythe appearance of a web page within the web browser by changing the fontsize or the background color of the text, and/or extract data from a webpage.

In some embodiments, a plug-in, instead of a bookmarklet, can beinstalled. A plug-in can be implemented as a set of software componentsthat adds specific abilities to a larger software application, like aweb browser, to enable customizing the functionality of the softwareapplication. For example, a plug-in can be installed in a web browser toenable the web browser to play video.

In some embodiments, the exemplary interface can be provided by aclient-side application. All the exemplary interfaces discussed belowcan take in any form, such as being displayed as a pop-up window.

Referring back to FIG. 6A, interface 600 includes a locale field 602 forthe locale dimension, a subject matter field 604 for the subject matterdimension, a medium field 606 for the medium dimension, and a stylefield 608 for the style dimension. Each of these fields can receive oneor more tags as input to identify one or more relevant documents throughinterface 600, and can also display one or more tags as output throughinterface 600.

Fields 602, 604, 606, and 608 can receive input via any means. Forexample, interface 600 can allow a user to type in the tags or, in someembodiments as shown in FIG. 6B, further provides a pull-down menu 622from which the user can choose one or more tags. In some embodiments,the field can also receive an incomplete text input, and then provide alist of suggested tags for the user to choose from. The list ofsuggested tags may include pre-defined tags that closely match theincomplete text input. In some embodiments, instead of providing a fieldfor each dimension, interface 600 can provide a single field for tagselection for all dimensions, and the user can either type in acombination of tags into the single field, or select the tags from apull-down menu provided by the single field.

In some embodiments, a search field 610 is also provided, allowing theuser to search for documents based on text, rather than tags. Afterreceiving the tags or the search text input, user interface 600corresponds with object model 260 and/or database 270 to search for oridentify the documents. In some embodiments, the user is provided anoption to select, by clicking on button 612, to explore the resultpresented in a graphical map similar to chart 400 of FIG. 4A, where thegraphical map can show one or more icons with links between them. Insome embodiments, each icon in the graphical map represents a documentand is selectable, and a selection of the icon can trigger a selectionand a display of the document represented by the icon, while the linkrepresents relationships between the tags associated with the documentsrepresented by the icons.

In some embodiments, the user is provided an option to select, byclicking on button 614, to list the search result. The listing of searchresult will be discussed later.

FIG. 7A is a screenshot depicting an exemplary interface 700 foridentifying and displaying documents based on tags, consistent withembodiments of the present disclosure. Based on one or more tagsreceived in, for example, interface 600 of FIG. 6A, one or moredocuments (in this case, document 702) can be identified and displayedby virtue of the fact that, for example, document 702 is associated witha cell that is associated with the received tags.

Interface 700 may include fields 602, 604, 606, and 608 of interface 600to display the tags received. In this exemplary illustration, Californiatag 343 is input under the locale dimension with field 602, scenery tag351 is input under the subject matter dimension with field 604, andmodern tag 372 is input under the style dimension with field 608, whileno tag is input for the medium dimension. Document 702 titled“California Impressionism” can then be identified and displayed throughinterface 700 in response to the California tag, the scenery tag, andthe modern tag input by virtue of, for example, document 702 beingassociated with a cell that is associated with these tags.

In some embodiments, interface 700 can also provide a means to accessother documents related to document 702 or related to the tags selected.As shown in FIG. 7A, interface 700 provides a related-overview button704, a linked-documents button 706, and a related-documents button 708.

In an exemplary illustration, after clicking on the related-overviewsbutton, a pull-down menu 710 can be displayed, which includes optionsincluding US art market, US film overview, and US photography overview.FIG. 7B is a screenshot depicting that a document 712 titled “UnitedStates Art Market” is identified and displayed when the “US Art Marketoption” of pull-down menu 710 is selected. As shown in FIG. 7B, document712 is associated with United States tag 341, which is a hierarchicalsuperset of California tag 343, and scenery tag 351. Therelated-overviews option can allow the user to identify documents thatare relatively more closely related to document 702 of FIG. 7A. Thecloser relationship can be determined base on, for example, thatdocument 712 is associated with a tag (United States tag 341) that iswithin the same dimension (locale dimension 340) as one of the tagsassociated with document 702 (California tag 343), or that a distancebetween documents 702 and 712 is below a certain threshold, as indicatedby the fact that they are both associated with scenery tag 351.

In another exemplary illustration, as shown in FIG. 7C, after clickingon the related-documents button 708, a pull-down menu 714 can bedisplayed, which includes an option “Introduction to World Art.” In someembodiments, related-documents button 708 can also provide access todocuments that are more broadly related to document 702 of FIG. 7A. Forexample, as shown in FIG. 7C, a document 716 titled “Introduction toWorld Art” is identified and displayed when the “Introduction to WorldArt” option of pull-down menu 714 is selected. As shown in FIG. 7C,document 716 is associated with scenery tag 351 and living tag 352 underthe subject matter dimension, and is also associated with paper tag 361and film tag 362 under the style dimension. Document 716 can bedetermined to be more broadly related to document 702 of FIG. 7A basedon, for example, that while documents 716 and 702 are both associatedwith scenery tag 351 under the subject matter dimension, document 716 isassociated with tags that are not associated with document 702 withinthe same dimension (e.g., living tag 352). The determination can also bebased on that document 716 is associated with one or more tags of aspecific dimension, while document 702 is not associated with any tagfrom that specific dimension (e.g., paper tag 361 and film tag 362 ofthe medium dimension). Therefore, related-documents button 708 allows auser to access documents across more dimensions and tags thanrelated-overview button 704.

In another exemplary illustration, as shown in FIG. 7D, after clickingon the linked-documents button, a pull-down menu 718 can be displayed.In some embodiments, linked documents button 708 can provide access todocuments associated with tags that have a lateral relationship with thetags selected. For example, referring to FIG. 3, the California tag 343and the Germany tag 342 can be lateral to each other within taghierarchy 310.

According to FIG. 7D, a document 720 titled “Architecture of Germany” isidentified and displayed, when Architecture of Germany option ofpull-down menu 718 is selected. As shown in FIG. 7D, document 720 isassociated with Germany tag 342 and architecture tag 353. In thisexample, document 720 also has a California tag 343 because document 720discusses about some of the landmarks in Germany are designed byarchitects from California, as shown in paragraph 722. Thelinked-documents option thus can also allow the user to identifydocuments associated with at least a tag (e.g. Germany tag 342) that hasa lateral relationship with any one of the selected tags (e.g.California tag 343).

FIG. 7E is a screenshot depicting an exemplary interface 750 foridentifying and displaying documents based on tags, consistent withembodiments of the present disclosure. Interface 750 includes a searchinterface 752 which can allow a search and display of one or moredocuments based on tags. In some embodiments, search interface 752 canbe activated by, for example, clicking on button 614 of interface 600 asdepicted in FIG. 6A to list the search result. In some embodiments,search interface 752 includes a locale field 754 for the localedimension, a subject matter field 756 for the subject matter dimension,a medium field 758 for the medium dimension, and an style field 760 forthe style dimension, which can allow the user to specify tags under eachdimension for the search. In some embodiments, interface 750 may furtherinclude fields 602, 604, 606, and 608 of interface 600, and the fields754, 756, 758, and 760 of the search interface 752 can be synchronizedwith, respectively, fields 602, 604, 606, and 608. In this exemplaryillustration, United States tag 341 is input for the locale dimension,and scenery tag 351 is input for the subject matter dimension. Bothfields 754 and 756 of search interface 752 can then display the sametags as, respectively, fields 602 and 604 of interface 750. A search fordocuments that are associated with a combination of tags input throughfields 754, 756, 758, and 760 can then be performed, after clicking onthe “search” button 762. The search interface 752 may also allow theuser to provide additional search conditions, such as limiting to thesearch result to, for example, a start date and an end date providedthrough input fields 764 and 766. The user can clear the searchconditions (e.g. tags and start/end date) by clicking on the “clear”button 768. After the search is performed, search result 770 isdisplayed. In this exemplary embodiment, search result 770 displaysmetadata such as the file type and the title of the documents found. Theuser can also select a document from the search result 770, which canlead to the displaying of document 772.

FIG. 8A is a screenshot depicting an exemplary interface 800 foridentifying and displaying documents based on tags from previouslyidentified documents, consistent with embodiments of the presentdisclosure. Interface 800 includes fields 602-608 of interface 600. Inthis example, United States tag 341 is input for the locale dimensionwith field 602, scenery tag 351 is input for the subject matterdimension with field 604, paper tag 361 is input for the mediumdimension with field 606, and classical tag 371 is input for the styledimension with field 608. Thus, in this illustration, a tag combinationidentical to tag combination 532 of FIG. 5 is input for the search.Interface 800 also includes a search results interface 820, whichdisplays search results 821-827. Search results 821-827 can show a listof, for example, documents that are found based on the selected tags,with metadata for each document, such as title 830, date 832, and author834. Each of the documents in the search results can be selected, withadditional information of the selected document displayed, such asclassification 842, and tag combination 847.

In this exemplary illustration, a document titled “Exhibition ofExpressionism in Germany and France at Houston Art Museum” is chosen,and is displayed as document 850. Selected document 850 is tagged with,for example, tag combination 847, which is identical to tag combination552 of FIG. 5, and which includes Texas tag 344, scenery tag 351, papertag 361, and modern tag 372. Referring to FIG. 5, selected document 850can be associated with cell 550, by virtue of having tag combination 847which is identical to tag combination 552, and cell 550 has relationship545 with cell 530 that is associated with tag combination 532 which isidentical to the tag combination input for this search. In someembodiments, interface 800 may also allow the user to add or modify thetags associated with the chosen document. For example, the user canremove classical tag 371 from the document, or tag the document withother tags under the style dimension.

FIG. 8B is another screenshot depicting exemplary interface 800. Afterthe selection of document 850, which is tagged with tag combination 847(which is identical to tag combination 552), fields 602-608 can bepopulated with the tags of tag combination 847. In this exemplaryillustration, the locale dimension, which has California tag 343 whenthe prior search is performed, can be populated with Texas tag 344 fromselected document 850. Moreover, the style dimension, which hasclassical tag 371 when the prior search is performed, can be populatedwith modern tag 372, also from selected document 850. The user can thenperform a new search, and an updated search results 850 is shown, whichincludes search results 851-854. Referring to FIG. 5, some of thedocuments in search result 850 may be associated with a cell that isrelated to cell 550 associated with tag combination 552 (which isidentical to tag combination 847), such as cell 590, cell 510, and cell530, etc. This can allow the user to begin with an initial group of tagsto identify one or more documents related to the initial set of tags,and then receive additional or new sets of tags from the identifieddocuments. The additional or new sets of tags can then be used to refinethe user's exploration in the universe of documents stored in datasources 230, and the refinement can be guided by the predefinedrelationship between the tags, which can determine the set of relateddocuments provided for a given set of tags.

FIG. 9 is a flowchart representing an exemplary method 900 performed byan electronic device for identifying documents based on selected tags,consistent with embodiments of the present disclosure. The selected tagscan be part of a predefined tag hierarchy (e.g., tag hierarchy 310 ofFIG. 3).

In this exemplary illustration, the electronic device (e.g., a computersystem 100) can interact with one or more other devices and/or storagecomponents (e.g., data sources 230, object model 260, and database 270of system 200 depicted in FIG. 2) for assisting with the identificationof documents. While the flowchart discloses the following steps in aparticular order, it will be appreciated that at least some of the stepscan be moved, modified, or deleted where appropriate, consistent withthe teachings of the present disclosure. And while the following stepsare indicated as being performed by an electronic device, it isappreciated that the steps can be performed by more than one electronicdevice.

In step 902, the electronic device acquires a selection of one or moretags for at least one dimension defined under the tag hierarchy. Theselection can be provided by a web-browser, or by a client-sideapplication, after receiving the selection from a user.

In step 904, after acquiring the tag selection, the electronic deviceidentifies one or more cells that are associated with the selected tags,and/or one or more cells associated with tags related to the selectedtags. As indicated above, these identified cells can be provided by anobject model (e.g., object model 260). In some embodiments, therelationship can be determined based on the attributes of the tags. Forexample, if a cell has attributes that match the selected tags, thatcell can be identified.

In some embodiments, a combination of tags of one or more dimensionswithin tag hierarchy 310 can be represented as a multi-dimensionalvector, with each dimension of tag hierarchy 310 represented by a vectordimension, and a combination of one or more tags under a dimension oftag hierarchy 310 contributes to a magnitude of the vector along thatvector dimension, based on the attributes of the tags. The relationshipbetween tags can then be calculated as, for example, an imaginarydistance between the multi-dimensional vectors representing the tagcombinations. In some embodiments, such imaginary distance can becalculated by first projecting the multi-dimensional vectorsrepresenting the tag combinations onto a pre-defined plane, and thencalculating a distance between the projections on the pre-defined plane.In some embodiments, when the calculated distance exceeds a certainthreshold, it can be determined that no relationship exists between thetag combinations. In some embodiments, the relationship between cells(or between tag combinations associated with the cells) can also beadded manually with or without considering the calculated distance.

In step 906, the electronic device identifies documents associated withthe one or more identified cells. As indicated above, tagged documentsare associated with cells.

In step 908, the electronic device provides data corresponding to theidentified documents for display. The identified documents can berepresented as a list similar to search results 820 depicted in FIG. 8A,or similar to a graphical representation as depicted in FIG. 4A.

In step 910, the electronic device further provides data facilitatingretrieval of documents with tags related to the selected tags. The datacan be provided and displayed after, for example, the electronic devicedetects the clicking of at least one of related overview button 704, alinked documents button 706, and a related documents button 708 ofinterface 700. The data facilitating retrieval of documents can bedisplayed in the same interface as the data for the identifieddocuments. For example, interface 700 can further include a pop-upwindow that includes requested information.

In the foregoing specification, embodiments have been described withreference to numerous specific details that can vary from implementationto implementation. Certain adaptations and modifications of thedescribed embodiments can be made. Other embodiments can be apparent tothose skilled in the art from consideration of the specification andpractice of the invention disclosed herein. It is intended that thespecification and examples be considered as exemplary only, with a truescope and spirit of the invention being indicated by the followingclaims. It is also intended that the sequence of steps shown in figuresare only for illustrative purposes and are not intended to be limited toany particular sequence of steps. As such, those skilled in the art canappreciate that these steps can be performed in a different order whileimplementing the same method.

1. (canceled)
 2. An apparatus comprising: a memory device that stores aset of instructions; and at least one processor configured to executethe set of instructions to: access, via one or more data storagedevices, an object model, wherein: the object model comprises cells,relationships among the cells, and combinations of tags and tag valuesassociated with the respective cells, data items are associated withcells of the object model based on corresponding combinations of tagvalues associated with the respective data items, and relationshipsamong the cells are based at least in part on relationships among tagvalues of tags associated with the cells; receive, via a user interface,search criteria for searching the plurality of data items, wherein thesearch criteria include indications of one or more tags; and responsiveto receiving the search criteria: determine a first cell of the objectmodel matching the one or more tags indicated in the search criteria;determine a second cell of the object model that is related to the firstcell based on a relationship indicated by the object model; identify atleast one or more data items associated with the second cell; andprovide, for displaying in the user interface, indications of the one ormore data items associated with the second cell.
 3. The apparatus ofclaim 2, wherein the at least one processor is further configured toexecute the set of instructions to: determine the relationship betweenthe first cell and the second cell of the object model by at least:determine a first tag common to both the first cell and the second cell,wherein respective tag values of the first tag associated with the firstcell and the second cell are different; and determine a relationshipbetween the respective tag values of the first tag associated with thefirst cell and the second cell.
 4. The apparatus of claim 3, wherein atag attribute associated with the first tag indicates a hierarchicalrelationship with the second tag in which the second tag is a subset ofthe first tag or the first tag is a subset of the second tag, andwherein the identification of at least one or more data items associatedwith the second cell is based on the hierarchical relationship.
 5. Theapparatus of claim 2, wherein the at least one processor is furtherconfigured to execute the set of instructions to: receive, via the userinterface, a selection of a data item from the one or more data itemsassociated with the second cell; and responsive to the selection of thedata item, update the search criteria to include indications of one ormore tags associated with the data item.
 6. The apparatus of claim 2,wherein the tags associated with the cells include multiple dimensions,and wherein the user interface provides an input selection field foreach dimension or a single input selection field that can receive acombination of dimensions of tags.
 7. The apparatus of claim 6, whereinthe user interface provides a drop down menu to display one or more tagsfor selection.
 8. The apparatus of claim 2, wherein the user interfacedisplays a list of selectable items representing the one or more dataitems associated with the second cell, wherein each selectable itemcorresponds to an identified data item and includes a title and metadatafor the data item, and wherein a selection of one of the selectableitems causes the data item corresponding to the selected selectable itemto be selected.
 9. The apparatus of claim 2, wherein the at least oneprocessor is further configured to execute the set of instructions to:receive, via the user interface, an input of one or more tags, whiledisplaying a data item; and update one or more tags associated with thedata item based on the input of the one or more tags.
 10. The apparatusof claim 2, wherein the at least one processor is further configured toexecute the set of instructions to: determine the relationships amongthe plurality of cells in the object model by at least: representingeach cell as a respective multi-dimensional vector based on thecombination of tags associated with the respective cells; anddetermining an imaginary distance between the multi-dimensional vectorsassociated with each pair of cells of the plurality of cells; and foreach pair of cells: comparing the imaginary distance between themulti-dimensional vectors associated with the pair of cells to athreshold; and in response to the imaginary distance satisfying thethreshold, determining that a relationship exists between the pair ofcells.
 11. The apparatus of claim 2, wherein the at least one processoris further configured to execute the set of instructions to: determinethe relationship between the first cell and the second cell of theobject model by at least: determining that the first tag and the secondtag have a common associated tag dimension in a tag hierarchy based onvalues of the respective tags, wherein the identification of at leastone or more data items associated with the second cell is based on bothcells having the common tag dimension.
 12. A computer-implemented methodcomprising: accessing, via one or more data storage devices, an objectmodel, wherein: the object model comprises cells, relationships amongthe cells, and combinations of tags and tag values associated with therespective cells, data items are associated with cells of the objectmodel based on corresponding combinations of tag values associated withthe respective data items, and relationships among the cells are basedat least in part on relationships among tag values of tags associatedwith the cells; receiving, via a user interface, search criteria forsearching the plurality of data items, wherein the search criteriainclude indications of one or more tags; and responsive to receiving thesearch criteria: determining a first cell of the object model matchingthe one or more tags indicated in the search criteria; determining asecond cell of the object model that is related to the first cell basedon a relationship indicated by the object model; identifying at leastone or more data items associated with the second cell; and providing,for displaying in the user interface, indications of the one or moredata items associated with the second cell.
 13. The method of claim 12further comprising: determining the relationship between the first celland the second cell of the object model by at least: determining a firsttag common to both the first cell and the second cell, whereinrespective tag values of the first tag associated with the first celland the second cell are different; and determining a relationshipbetween the respective tag values of the first tag associated with thefirst cell and the second cell.
 14. The method of claim 13, wherein atag attribute associated with the first tag indicates a hierarchicalrelationship with the second tag in which the second tag is a subset ofthe first tag or the first tag is a subset of the second tag, andwherein the identification of at least one or more data items associatedwith the second cell is based on the hierarchical relationship.
 15. Themethod of claim 12 further comprising: receiving, via the userinterface, a selection of a data item from the one or more data itemsassociated with the second cell; and responsive to the selection of thedata item, updating the search criteria to include indications of one ormore tags associated with the data item.
 16. The method of claim 12,wherein the tags associated with the cells include multiple dimensions,and wherein the user interface provides an input selection field foreach dimension or a single input selection field that can receive acombination of dimensions of tags.
 17. The method of claim 16, whereinthe user interface provides a drop down menu to display one or more tagsfor selection.
 18. The method of claim 12, wherein the user interfacedisplays a list of selectable items representing the one or more dataitems associated with the second cell, wherein each selectable itemcorresponds to an identified data item and includes a title and metadatafor the data item, and wherein a selection of one of the selectableitems causes the data item corresponding to the selected selectable itemto be selected.
 19. The method of claim 12 further comprising:receiving, via the user interface, an input of one or more tags, whiledisplaying a data item; and updating one or more tags associated withthe data item based on the input of the one or more tags.
 20. The methodof claim 12 further comprising: determining the relationships among theplurality of cells in the object model by at least: representing eachcell as a respective multi-dimensional vector based on the combinationof tags associated with the respective cells; and determining animaginary distance between the multi-dimensional vectors associated witheach pair of cells of the plurality of cells; and for each pair ofcells: comparing the imaginary distance between the multi-dimensionalvectors associated with the pair of cells to a threshold; and inresponse to the imaginary distance satisfying the threshold, determiningthat a relationship exists between the pair of cells.
 21. The method ofclaim 12 further comprising: determining the relationship between thefirst cell and the second cell of the object model by at least:determining that the first tag and the second tag have a commonassociated tag dimension in a tag hierarchy based on values of therespective tags, wherein the identification of at least one or more dataitems associated with the second cell is based on both cells having thecommon tag dimension.